// pages/websocket/websocket.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    url: 'ws://127.0.0.1:18081/ws/1001',
    msgs: [],
    msg: '',
    isConnect:false
  },

  //websocket连接
  connectSocket() {
    let _this = this;
    let socketTask = wx.connectSocket({
      url: _this.data.url
    });

    socketTask.onOpen(()=>{
      console.log("websocket连接成功")
      _this.setData({isConnect:true})
    })

    socketTask.onClose(() => {
      console.log("websocket连接已断开")
      _this.setData({
        msgs: [..._this.data.msgs, "连接已断开!"],
        isConnect:false
      });
    })

    socketTask.onMessage(function(res) {
      let data = JSON.parse(res.data);
      let msg = data.from.id + ", " + data.msg;
      _this.setData({
        msgs: [..._this.data.msgs, "接收到消息 -> " + msg]
      });
    });

    _this.setData({
      socketTask: socketTask,
      msgs: [..._this.data.msgs, "连接成功!"]
    });

  },

  urlInput(e) {
    this.setData({
      url: e.detail.value
    });
  },

  msgInput(e) {
    this.setData({
      msg: e.detail.value
    });
  },

  sendMsg() {
    let msg = this.data.msg;

    this.data.socketTask.send({
      data: msg
    });
    
    this.setData({
      msgs: [...this.data.msgs, "发送消息 -> " + msg]
    });
  },

  closeSocket(){
    this.data.socketTask.close();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})